1. Field of the Invention
Embodiments of the invention relates generally to the field of data processing systems. More particularly, the embodiment of the invention relates to management of configuration information in an enterprise computing system.
2. Background
Traditional client-server systems employ a two-tiered architecture. Applications executed on the client side of the two-tiered architecture are comprised of a monolithic set of program code including a graphical user interface component, presentation logic, business logic and a network interface that enables the client to communicate over a network with one or more servers. A database maintained on the server provides non-volatile storage for the data accessed and/or processed by the application.
The “business logic” component of the application represents the core of the application, i.e., the rules governing the underlying business process (or other functionality) provided by the application. The “presentation logic” describes the specific manner in which the results of the business logic are formatted for display on the user interface. The “database” includes data access logic used by the business logic to store and retrieve data.
The limitations of the two-tiered architecture become apparent when employed within a large enterprise. For example, installing and maintaining up-to-date client-side applications on a large number of different clients is a difficult task, even with the aid of automated administration tools. Moreover, a tight coupling of business logic, presentation logic and the user interface logic makes the client-side code very brittle. Changing the client-side user interface of such applications is extremely hard without breaking the business logic, and vice versa. This problem is aggravated by the fact that, in a dynamic enterprise environment, the business logic may be changed frequently in response to changing business rules. Accordingly, the two-tiered architecture is an inefficient solution for enterprise systems.
In response to limitations associated with the two-tiered client-server architecture, a multi-tiered architecture has been developed. In the multi-tiered system, the presentation logic, business logic and database are logically separated from the user interface of the application. These layers are moved off of the client to one or more dedicated servers on the network. For example, the presentation logic, the business logic, and the database may each be maintained on separate servers. In fact, depending on the size of the enterprise, each individual logical layer may be spread across multiple dedicated servers.
This division of logical components provides a more flexible and scalable architecture compared to that provided by the two-tier model. For example, the separation ensures that all clients share a single implementation of business logic. If business rules change, changing the current implementation of business logic to a new version may not require updating any client-side program code. In addition, presentation logic may be provided which generates code for a variety of different user interfaces, which may be standard browsers such as Internet Explorer® or Netscape Navigator®.
A multi-tiered architecture may be implemented using a variety of different application technologies at each of the layers of the multi-tier architecture, including those based on the Java 2 Enterprise Edition Specification v1.3, published on Jul. 27, 2001 or subsequent versions thereof (the J2EE Standard), the Microsoft .NET Framework 1.1 created by Microsoft Corporation of Redmond, Wash. (the.Net Standard) and/or the Advanced Business Application Programming (“ABAP”) standard developed by SAP AG. For example, in a J2EE environment, the business layer, which handles the core business logic of the application, is comprised of Enterprise Java Bean (“EJB”) components with support for EJB containers. Within a J2EE environment, the presentation layer is responsible for generating servlets and Java Server Pages (“JSP”) interpretable by different types of browsers at the user interface layer.
Although the multi-tiered system provides a more flexible and scalable architecture, it also results in significant additional complexity. For example, managing multiple instances in homogenous clusters of presentation layer servers, business layer servers and databases, and the dependencies between them requires a significant amount of network administration overhead.